The present invention relates to cloud computing systems, and more particularly to, methods and systems capable of providing services by dynamically determining a service level agreement on the basis of the actual level of a service provided by a primary cloud computing system.
A cloud computing system is a group of autonomous computing systems connected to each other through a network such as the Internet. In such a system, the processing resources may be dynamically scalable and often virtualized. A virtual resource is a piece of software designed to emulate a piece of hardware. Using virtual resources may be one method for increasing the efficiency of a cloud computing system. Through use of a cloud computing system, details relating to the implementation of software applications running on the system and the hardware that supports them may be abstracted to the end user. Users may access computer applications through the network and have it appear as though the application is running on a local machine.
The services of a cloud computing system are typically provided by a cloud service provider. When provisioning a service on a cloud computing system, a service level agreement is typically made between the user and the cloud service provider. The user then pays for the services provided. Fees may be charged when the cloud computing system performs particular processes for the client system. However, if the primary cloud server utilizes the services of secondary cloud computing service providers, then an additional service level agreement is also made between a primary cloud service provider (hereinafter referred to as a primary cloud) and the secondary cloud service providers (hereinafter referred to as secondary clouds). To provide a service that uses a plurality of cloud computing service providers, service portability among the cloud services is required. Specifically, the primary cloud needs to select an optimum service from the secondary clouds while complying with a service level agreement with the user.